use crate::context::Context;
use crate::workflow::errors::WorkflowError;
use std::future::Future;

/// Trait for defining a workflow step.
pub trait WorkflowStep {
    /// Executes the step in the given context.
    fn execute<'a>(&'a self, ctx: &'a Context) -> Box<dyn Future<Output = Result<(), WorkflowError>> + Send + 'a>;
} 